package com.example.wechattakeaway.service;

import com.example.wechattakeaway.form.merchantform.InsertMerchantForm;
import com.example.wechattakeaway.form.merchantform.UpdateMerchantForm;
import com.example.wechattakeaway.vo.ResultVO;
import org.springframework.web.multipart.MultipartFile;

/**
 * 商家信息管理服务层接口
 */
public interface MerchantService {
    /**
     * 添加商家信息
     * @param insertMerchantForm
     * @return
     */
    ResultVO insertMerchant(InsertMerchantForm insertMerchantForm);


    /**
     * 编辑商家信息
     * @param updateMerchantForm
     * @return
     */
    ResultVO updateMerchant(UpdateMerchantForm updateMerchantForm);

    /**
     * 查询所有商家信息列表
     * @return
     */
    ResultVO selectAllMerchant();

    /**
     * 根据id查询商家信息
     * @param merchantId
     * @return
     */
    ResultVO selectMerchantById(Integer merchantId);

    /**
     * 根据id删除商家信息
     * @param merchantId
     * @return
     */
    ResultVO deleteMerchant(Integer merchantId);

    /**
     * 根据商家类型查询商家
     * @param merchantType
     * @return
     */
    ResultVO selectMerchantByType(String merchantType);

    /**
     * 根据订单量降序排列
     * @return
     */
    ResultVO selectByOrderNum();


    /**
     * 某一商家类型中，根据订单量降序排列
     * @return
     */
    ResultVO selectByTypeAndOrder(String merchantType);

    /**
     * 在进入分类之后，根据商家被关注数量（降序）查询对应商家列表
     * @param merchantType
     * @return
     */
    ResultVO selectByAttenAndType(String merchantType);

    /**
     * 首页根据商家被关注数量（降序）查询对应商家列表
     * @return
     */
    ResultVO selectByAttenNum();

    /*
    根据负责人id查询商家信息
    @param userId
    @return merchant
     */
    ResultVO selectMerByUser(Integer userId);

    //根据商家id 更新商家图片
    ResultVO UpdateImgById(MultipartFile file,Integer merchantId);
}
